package com.bit.ioc;

import com.bit.ioc.controller.UserController;
import com.bit.ioc.repo.UserRepo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.ComponentScan;

@ComponentScan(basePackages = "com.bit.ioc")
@SpringBootApplication
public class SpringIocDemoApplication {

	public static void main(String[] args) {
		ApplicationContext context = SpringApplication.run(SpringIocDemoApplication.class, args);

		UserController bean = context.getBean(UserController.class); // 有局限性  一个类型对应多个Bean
		bean.hello();
//
//
//		UserController userController = (UserController) context.getBean("userController"); //一个bean可以有多个名称, 但是名称不会重复
//		userController.hello();
//
//
//		UserController userController1 = context.getBean("userController", UserController.class);
//		userController1.hello();
//
//		System.out.println(bean);
//		System.out.println(userController);
//		System.out.println(userController1);


//		UController bean = context.getBean(UController.class);
//		bean.hello();
//		UController uController = (UController)context.getBean("uController");
//		uController.hello();

//
//		UserRepo bean = context.getBean(UserRepo.class);
//		bean.hello();

//		UserInfo bean = context.getBean(UserInfo.class);
//		System.out.println(bean);

//		UserInfo bean = (UserInfo) context.getBean("userInfo1");
//		System.out.println(bean);
//
//		UserInfo bean1 = (UserInfo) context.getBean("u1");
//		System.out.println(bean1);
//
//		UserInfo bean2 = (UserInfo) context.getBean("userInfo2");
//		System.out.println(bean2);

//		UserComponent userComponent = (UserComponent)  context.getBean("userComponent2");
//		userComponent.hello();

	}

}
